Collaboration involves the ability for each member in a group of members, called “collaborators” to automatically transmit information to, and receive information from, other collaborators in the group. In order to facilitate such collaboration, various systems have been developed that allow such information to be transmitted between personal computer systems, communication appliances or other communication devices, including handheld and wireless devices. Collectively, these devices will be referred to a “computers” in this description.
Computer-based collaboration may occur locally among users connected to, or operating with, one computer or server. Alternatively, collaboration may occur over a network, such as the Internet, wherein each of the users is located at a computer connected to the network. A server may also be connected to the network. Several collaboration models are currently being implemented as networked computer collaboration systems. One of these models is a client-server model in which all collaborators are connected, via the network, to a central server. Information generated by each collaborator is sent over the network to the server that then transmits the information back over the network to each other collaborator. In one version of this system data that is being collaboratively modified may be stored centrally on the server. Then, each collaborator that wants to modify the data sends information to the server to effect a change in the server data. The server modifies its copy of the data and then sends information, synchronously or asynchronously, representing a “view” of the modified data to all collaborators, so that each collaborator can display the data locally.
Alternatively, in a server based system, in addition to the data copy maintained in the server, additional local data copies may be maintained in each collaborating computer. Each collaborator that wants to modify the data sends information to the server to effect a change in the server data. The server modifies its copy of the data and then transmits the command to all collaborators. Each collaborator uses the command to update its local data copy. This local data copy is then displayed locally. Examples of this model are Lotus Notes® sold by International Business Machines, Inc. Armonk, N.Y. and Exchange sold by Microsoft Corporation, Redmond, Wash.
Another collaboration model is a “peer-to-peer” or “distributed” model in which direct connections are established over the network between each of the collaborating computers. Information generated by each collaborator is then sent directly to each other collaborator. In such a system, the collaborators communicate in a private “virtual” shared space that is generated and maintained by the collaborative system.
A central data repository is not necessarily in a peer-to-peer collaboration system because each collaborator has a local copy of the data being collaboratively modified. In order to change the data, either a “push” or a “pull” model may be employed. In a “push” model, a collaborator generates a data change request that is forwarded to each other collaborator. The incoming data change requests are then used by each collaborator to modify its local data copy. In a “pull” model, one collaborator modifies local data and offers up such changes upon asynchronous request. Other collaborators issue requests, fetch and gather changes, and subsequently modify their local data copies to reflect such changes. Examples of this peer-to-peer model are the Kubi Client, developed and marketed by Kubi Software of Lincoln, Mass., and the Groove Workspace collaboration system developed and marketed by Groove Networks, Inc., 100 Cummings Center Suite 535Q, Beverly, Mass. 019015 that is described in detail at Groove Networks' web site. See also U.S. Pat. No. 6,446,113 B1.
However, all of these latter collaboration systems are application programs that run in conjunction with an operating system that is present on all conventional computer systems. Because the collaboration systems are purely application programs (such as an electronic mail application or a groupware application or a browser-based application), they have the disadvantage that they require each collaborator to learn a user interface that is peculiar to the particular program. Many users are reluctant to learn the new controls and functions that are associated with such interfaces.
Modern operating systems include a file system that is typically organized by folders or directories. These folders or directories are either explicit user-specified collections of files, or may be “virtual” collections in which files are organized based upon a query or search criteria. This file system and associated foldering or directory system (hereinafter referred to as a “folder-based” file system) has the advantage that it is perceived by the user to be part of the operating system. Therefore, if a user has the operating system he or she is already familiar with the built-in file system so that the users do not need to learn an additional set of commands and functions to operate the system.
Such a folder based file system is shown in FIG. 1, which is screen shot of a file system display 100 from the Windows® XP Pro operating system sold by Microsoft Corporation, Redmond, Wash. This display shows various folders 102 that may contain files or additional subfolders. The display also includes a task pane 104 that presents the user with various tasks 106 that can be performed on the folders 102. These tasks include renaming the folder, moving the folder, copying the folder etc. In addition, another section 110 permits the user to navigate to other areas in the computer such as the local disk, the “My Documents” folder and other selected places. A further section 112 provides details, such as the date that the file was last modified, about the selected folder (Folder D is shown selected in FIG. 1).
However, because collaboration systems are separate application programs, in order to perform collaborative work on files that are part of the folder based file systems, the files must be moved or copied between the conventional operating system file system and the collaboration application program. Typically, such moving or copying of files between the conventional file system directories and the collaboration system can be tedious and error-prone. Furthermore, the duplication of such information can result in excessive use of storage, and may cause user confusion as multiple copies may get out of synchronization with one another as they are modified.
It would be convenient if the files could be shared collaboratively without having to move them from the file system into the collaborative system. To this end, in many folder-based file systems, the folders or directories can be shared with other parties by treating the folders as “remote folders” or “remote mounted volumes.” For example, in FIG. 1, folders can be shared by selecting a folder, such as Folder D, and then selecting the “Share this folder” task 108 from task pane section 106. A selection of the share task opens a dialog box of which a screen shot 200 is shown in FIG. 2. This dialog box allows various sharing parameters to be set. For example, radio buttons 202 can be used to select whether the folder should be shared. Text boxes 204 and 206 permit the user to enter a folder sharing name and comment. Radio buttons 208 allow the user to control the number of other users allowed to share the selected folder. Finally, additional buttons 210 and 212 allow the user to set sharing permissions and to set parameters that allow the selected folder to be accessed even when a user is not connected to the network. When a selected folder is designated as shared, a “hand” overlay is applied to the icon that represents the folder as shown at 114 in FIG. 1.
Treating the folders in this manner allows sharing of the data in the folders, but users cannot easily coordinate their activities and usage of the data and thus cannot effectively “collaborate” in a manner similar to that provided by the aforementioned collaboration systems. For example, folder sharing does not provide any indication of, or identify, a user that made a change to the folder or file (nor does it notify others when a change has been made). In addition, file sharing systems do not provide any mechanism that indicates who is currently accessing a folder or who is examining files in that folder. Further, file sharing does not allow users to store comments about the files; instead, all communication between collaborators must be done through files. In contrast, collaboration systems provide mechanisms for the collaborators to communicate “out-of-band”, yet still “in context”. Effectively, collaboration systems allow the collaborators to not only modify the shared files, but also to communicate regarding the files within the surrounding context of the folder containing the files themselves.